Digital cameras and image sensor devices (such as CCD/CMOS image sensors) have gained significant popularity in recent years. Various efforts have been made to improve image processing in image sensor devices. For example, a camera typically includes an analog/digital front-end and a digital back-end. Complex digital back-end processors have been developed to improve camera performance, such as DIGIC 5 manufactured by Canon, Inc. These back-end processors can provide various camera functions, such as noise cancellation, shading correction, face detection, fix-pattern noise correction, anti-shaking, high ISO, other desired functions, or combinations thereof. The back-end processors are powerful, however, the development cycle is long and cost is high, and bandwidth also limits functions performed by the digital back-end processors. Accordingly, some functions have been moved to the digital front-end processor to reduce the back-end processor workload. For example, a fixed circuit can be incorporated into the digital front-end processor, such as a fix pattern noise removal circuit and a reorder circuit. Such circuits, though powerful, require redesigning the digital front-end processor, which is time-consuming and not cost effective.
A programmable stream image processor provides a high efficiency and low latency solution for handling different camera applications. For example, various programming can be implemented to ensure the stream processor can deal with fix-pattern noise correction, reorder functions, and other desired functions. A stream controller is a key part of a programmable stream processor, as the stream controller controls data processing flows and kernel switching when processing an image. Although existing programmable stream processors and associated stream controllers have been generally adequate for their intended purposes, they have not been entirely satisfactory in all respects.